Date		:	31 octobre 1993
		Protection	:	MOT DE PASSE
		Programme	:       VEIL OF DARKNESS
		Outils		:	SOFT-ICE V2.50 + EMS
		Fichier		:	CODE.2
		Temps pass�	:	5 minutes
		Soci�t�		:	EVENT HORIZON SOFTWARE + SSI
		Divers	        :	Demande de mot de passe par icones.
		Origine		:	JKT
		Num�ro		:	230


	Ce crack avait �t� essay� par le SLAVE avec pour r�sultat un 
	r�affichage de la demande de mot de passe � chaque changement d'image.
	Pas tr�s pratique pour jouer. Il avait quand m�me r�ussi � d�terminer
	dans quel fichier se trouvait la protection: CODE.2
	Le code est demand� graphiquement � l'aide de 5 figures qu'il faut
	identifier. Ayant remarqu� que le temps de traitement pour "juger" de
	la r�ponse �tait relativement long, je pris le risque de taper 5
	r�ponses puis d'appeler SOFT-ICE de suite apr�s sans me trigger sur
	quoique soit.
	Dans ce genre de protection il faut "s'�loigner" le plus possible de
	l'endroit de la demande de code pour essayer de tomber dans le programme
	principal qui appelle par des CALL la demande de code, le test du code,
	le jeu etc...
	Dans le cas pr�sent la s�quence suivante me frappe �tant juste situ�e
	avant un RETF:

	CS=2331
	CS:111E 7405	JZ	1125
	CS:1120	B80100  MOV	AX,0001
	CS:1123	EB02	JMP	1127
	CS:1125	33C0	XOR	AX,AX
	CS:1127 CB	RETF 

	Mais malheureusement le programme me redemande le code apr�s avoir forc�
	le contenu de AX � 1. C'est donc pas la bonne...

	Je continu et trouve ceci un peu plus loin en ayant pass� le RETF:

	CS=1ED9
	CS:44C9	E8F0F8	CALL	3DBC
	CS:44CC	0BC0	OR	AX,AX
	CS:44CE 7403	JZ	44D3
	CS:44D0	E98800	JMP	455B
	CS:44D3 FF46FE	INC	WORD PTR [BP-02]

	Le contenu de AX est �gal � 0000. J'y place 0001 et tape X.
	Ca marche !...
	...jusqu'au prochain changement d'image ! Le code est redemand� !
	Ce qui ne signifie qu'une chose: c'est que le r�sultat est test� tout
	au long du jeu � chaque changement d'image. Smart !

	Je d�cide d'aller creuser dans le CALL pr�c�dent le test.
	Dans ce cas l� il faut aller examiner la fin du CALL juste avant le RET.
	Pourquoi ? Parceque c'est la que logiquement on place quelque chose ou
	non dans AX avant de revenir.

	Et on trouve effectivement ceci:

	CS=1ED9		; C'est normal puisque l'on est venu ici par un CALL.
	CS:3DF0 B80100	MOV	AX,0001	; VOILA CE QUE L'ON EST VENU CHERCHER.
	CS:3DF3 5E	POP	SI
	CS:3DF4	CB	RETF		; CA, C'EST PAS NORMAL !

	Il ne faut pas se laisser distraire par le fait que l'on est venu en
	CALL et que l'on repart en RETF. Il faut maintenant agir sur le saut
	qui fait passer en CS:3DF0 pour obtenir toujours un 0001 en AX avant le
	RETF. Ce saut se trouve un peu plus haut en CS:3DDB. Il suffit de le
	forcer.

	CS:3DD7 3B87C093	CMP	AX,[BX+93C0] ; ON TESTE LA REPONSE.	
	CS:3DDB	7404		JZ	3DE1	     ; SI ZERO C'EST OK.	
	  :
	  :
	CS:3DE1 46		INC	SI	; PROCHAINE FIGURE.
	CS:3DE2 83FE05		CMP	SI,+05	; 5 FIGURES A TESTER.
	
	Avec PCTOOLS chercher: 3B87C0937404
	             modifier: ........EB..

	FREDDY